Natural language processing (NLP) has traditionally been a very processing and storage intensive computing activity. In fact, many types of this activity have been migrated into cloud installations that match NLP with other functions, such as speech-to-text, and provide massive computing and storage resources. However, as client-side performance and local storage have increased, capable systems exist that allow for NLP to be used on local platforms.
Implementations of NLP today are typically provided using languages such as C/C++, reflecting the performance-centric concerns and the ability to tune the code and algorithms to specific hardware and operating system environments. One significant downside is that with multiple hardware and operating system configurations and combinations, there are numerous NLP implementations—which result in a significant task of development, optimization, and support.